home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Serial.h
-
- Contains: Serial port Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.1.2 on ETO #20
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
-
- #ifndef __SERIAL__
- #define __SERIAL__
-
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
- /* #include <ConditionalMacros.h> */
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=mac68k
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import on
- #endif
-
-
- enum {
- baud150 = 763,
- baud300 = 380,
- baud600 = 189,
- baud1200 = 94,
- baud1800 = 62,
- baud2400 = 46,
- baud3600 = 30,
- baud4800 = 22,
- baud7200 = 14,
- baud9600 = 10,
- baud14400 = 6,
- baud19200 = 4,
- baud28800 = 2,
- baud38400 = 1,
- baud57600 = 0,
- stop10 = 16384,
- stop15 = -32768L,
- stop20 = -16384,
- noParity = 0,
- oddParity = 4096,
- evenParity = 12288,
- data5 = 0,
- data6 = 2048,
- data7 = 1024,
- data8 = 3072
- };
-
- enum {
- aData = 6, /* channel A data in or out (historical) */
- aCtl = 2, /* channel A control (historical) */
- bData = 4, /* channel B data in or out (historical) */
- bCtl = 0, /* channel B control (historical) */
- ctsEvent = 32, /* flag for SerShk.errs and SerShk.evts */
- breakEvent = 128, /* flag for SerShk.errs and SerShk.evts */
- xOffWasSent = 128, /* flag for SerStaRec.xOffSent */
- dtrNegated = 64, /* flag for SerStaRec.xOffSent */
- ainRefNum = -6, /* serial port A input */
- aoutRefNum = -7, /* serial port A output */
- binRefNum = -8, /* serial port B input */
- boutRefNum = -9, /* serial port B output */
- swOverrunErr = 1, /* serial driver error masks */
- breakErr = 8, /* serial driver error masks */
- parityErr = 16, /* serial driver error masks */
- hwOverrunErr = 32, /* serial driver error masks */
- framingErr = 64, /* serial driver error masks */
- kOptionClockX1CTS = 64, /* option bit used with Control code 16 */
- kOptionPreserveDTR = 128 /* option bit used with Control code 16 */
- };
-
- enum {
- sPortA,
- sPortB
- };
-
- typedef SInt8 SPortSel;
-
- /* csCodes for serial driver Control routines */
-
- enum {
- serdReset = 8,
- serdSetBuf = 9,
- serdHShake = 10,
- serdClrBrk = 11,
- serdSetBrk = 12,
- serdSetBaud = 13,
- serdHShakeDTR = 14,
- serdSetMIDI = 15,
- serdSetMisc = 16,
- serdSetDTR = 17,
- serdClrDTR = 18,
- serdSetPEChar = 19,
- serdSetPECharAlternate = 20,
- serdSetXOff = 21,
- serdClrXOff = 22,
- serdSendXOnConditional = 23,
- serdSendXOn = 24,
- serdSendXOffConditional = 25,
- serdSendXOff = 26,
- serdChannelReset = 27,
- serdSet230KBaud = 'JF', /* set 230K baud data rate */
- serdSetPollWrite = 'jf', /* disable interrupt-driven transmit */
- serdSetFlushCount = 'FC'
- };
-
- /* csCodes for serial driver Status routines */
- enum {
- serdGetBuf = 2,
- serdStatus = 8,
- serdGetVers = 9,
- serdGetVersSys = 0x8000
- };
-
- struct SerShk {
- Byte fXOn; /*XOn flow control enabled flag*/
- Byte fCTS; /*CTS flow control enabled flag*/
- unsigned char xOn; /*XOn character*/
- unsigned char xOff; /*XOff character*/
- Byte errs; /*errors mask bits*/
- Byte evts; /*event enable mask bits*/
- Byte fInX; /*Input flow control enabled flag*/
- Byte fDTR; /*DTR input flow control flag*/
- };
- typedef struct SerShk SerShk;
-
- struct SerStaRec {
- Byte cumErrs;
- Byte xOffSent;
- Byte rdPend;
- Byte wrPend;
- Byte ctsHold;
- Byte xOffHold;
- };
- typedef struct SerStaRec SerStaRec;
-
- extern pascal OSErr SerReset(short refNum, short serConfig);
- extern pascal OSErr SerSetBuf(short refNum, Ptr serBPtr, short serBLen);
- extern pascal OSErr SerHShake(short refNum, const SerShk *flags);
- extern pascal OSErr SerSetBrk(short refNum);
- extern pascal OSErr SerClrBrk(short refNum);
- extern pascal OSErr SerGetBuf(short refNum, long *count);
- extern pascal OSErr SerStatus(short refNum, SerStaRec *serSta);
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import off
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=reset
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __SERIAL__ */
-